#pragma once 

//#include <glm/glm.hpp>

#include "Math/Vec3.h"
#include "Math/Vec2.h"

#include "Containers/Vector.h"

#include "Vertex.m.h"

RSTRUCT()
struct SVertex
{

    ROBJECT

public:
    SVertex()
    {
        
    }

    SVertex(float Inx,float Iny,float Inz, float Inu, float Inv,float InNormalx,float InNormaly,float InNormalz )
    :Position(Inx,Iny,Inz)
    ,UV(Inu,Inv)
    ,Normal(InNormalx, InNormaly, InNormalz)
    {
    }

    float X()
    {
        return Position.X;
    }

    float Y()
    {
        return Position.Y;
    }

    float Z()
    {
        return Position.Z;
    }

    RFIELD()
    SVec3 Position;
    
    RFIELD()
    SVec2 UV;
    
    RFIELD()
    SVec3 Normal;
};


